#ifndef QABSTRACTPROPERTYFACTORY_H
#define QABSTRACTPROPERTYFACTORY_H

#include "QtPropertyExplorerLib.h"
#include <QObject>

namespace QPE {

class QProperty;

class QTPROPERTYEXPLORER_DLL_EXPORT QAbstractPropertyFactory
{
public:
	//! Empty virtual destructor
	virtual ~QAbstractPropertyFactory() {}

	//! Creates a new property of a certain type and assigns a name and description (otionally)
	//! \param type The type of the property as string
	//! \param name The property's name
	//! \return Returns the created property or NULL if it couldn't be be created
	virtual QProperty* createProperty(const QString& type, const QString &name) = 0;
};

}

#endif
